Video stream measurement

ABSTRACT

A video stream measurement method and system. The method includes receiving by a computing system, a video stream comprising plurality of timestamps located at specified intervals of the video stream. The computing system broadcasts the video stream for a user and decodes a first time stamp broadcasted during a first time period. The computing system monitors a user interaction function performed by the user and associated with the video stream. The computing system generates and transmits a report comprising a description associated with the user interaction function. The computing system receives an analysis associated with the report.

This application is a continuation application claiming priority to Ser.No. 12/628,288 filed Dec. 1, 2009, now U.S. Pat. No. 8,566,856, issuedOct. 22, 2013.

FIELD

The present invention relates to a method and associated system formeasuring and analyzing a video stream broadcasted for a user.

BACKGROUND

Monitoring data and associated functions typically comprises aninaccurate process with little flexibility. Systems performing datamonitoring processes typically transmit the data without the ability toenable any feedback associated with the data. Transmitting the datawithout the ability to enable any feedback associated with the datalimits any flexibility to account for changes within the systems.

SUMMARY

The present invention provides a method comprising:

-   -   receiving, by a computer processor of a computing system, a        video stream comprising plurality of timestamps located at        specified intervals of said video stream;    -   broadcasting, by said computer processor for a user, said video        stream;    -   during said broadcasting, first decoding by said computer        processor, a first time stamp of said plurality of time stamps,        said first time stamp broadcasted during a first time period;    -   during said first decoding, monitoring by said computer        processor, a first user interaction function associated with        said video stream, said first user interaction function        performed by said user during a broadcast of a first portion of        said video stream, said broadcast of said first portion of said        video stream occurring at said time stamp;    -   generating, by said computing system, a report, said report        comprising a first description associated with said first user        interaction function and said first time period associated with        said first time stamp;    -   transmitting, by said computer processor to an analysis        computing system, said report; and    -   receiving, by said computer processor from said analysis        computing system, an analysis associated with said report.

The present invention advantageously provides a simple method andassociated system capable of monitoring data and associated functions.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates a system for measuring and analyzing a video streambroadcasted for a user, in accordance with embodiments of the presentinvention.

FIG. 2 illustrates a flowchart describing an algorithm used by thesystem of FIG. 1 for implementing a method for measuring and analyzing avideo stream broadcasted for a user, in accordance with embodiments ofthe present invention.

FIG. 3 illustrates a computer apparatus used for measuring and analyzinga video stream broadcasted for a user, in accordance with embodiments ofthe present invention.

DETAILED DESCRIPTION

FIG. 1 illustrates a system 5 for measuring and analyzing a video streambroadcasted for a user, in accordance with embodiments of the presentinvention. System 5 monitors and reports user interactions and analyticsassociated with a broadcasted video stream (e.g., internet basedstreaming video). The analytics may be used to automatically determinewhere advertising may be inserted into a video stream. System 5 mayadditionally generate a summary (i.e., based on the analytics) video fordownloading. A measurement process may comprise inserting timestampmeta-data into a streaming video, discovering the timestamp meta-data bya media player, transmitting (i.e., to a web-analytics server) thediscovery of the timestamp meta-data, and analyzing user functionsperformed with reference to the timestamp meta-data.

System 5 of FIG. 1 comprises devices 8 a . . . 8 n connected through anetwork 7 to a computing system 10. Network 7 may comprise any type ofnetwork including, inter alia, a local area network, (LAN), a wide areanetwork (WAN), the Internet, etc. Devices 8 a . . . 8 n may comprise anytype of devices capable of broadcasting a video stream, inter alia, apersonal computer, a laptop computer, a computer terminal, a cellulartelephone, a digital assistant (PDA), a video game system, anaudio/video player, etc. Each of devices 8 a . . . 8 n may comprise asingle device or a plurality of devices. Devices 8 a . . . 8 n are usedby end users for receiving and viewing audio/video streaming broadcasts.Computing system 10 may comprise any type of computing system(s)including, inter alia, a personal computer (PC), a server computer, adatabase computer, etc. Computing system 10 is used for:

-   1. Inserting time stamps into a video data stream.-   2. Transmitting the video stream (i.e., comprising the time stamps)    to any of devices 8 a . . . 8 n.-   3. Receiving interaction data (i.e., from any of devices 8 a . . . 8    n) associated with user functions performed during a broadcast of    the video stream (i.e., by any of devices 8 a . . . 8 n).-   4. Analyzing the interaction data.-   5. Transmitting an analysis of the interaction data and any    associated instructions to the devices 8 a . . . 8 n or an external    entity (e.g., an advertiser).

Computing system 10 comprises a memory system 14. Memory system 14 maycomprise a single memory system. Alternatively, memory system 14 maycomprise a plurality of memory systems. Memory system 14 comprises asoftware application 18 and a database 12. Database 12 comprises allanalysis data associated with user interactions related to a videostream. Software application 18 enables a method to measure and analyzea video stream broadcasted for a user. Software application 18 enables aprocess for measuring and analyzing a video stream broadcasted for auser as follows.

Computing system 10 (i.e., via software application 18) insertstimestamp meta-data into a live encoded on-demand video stream. Thevideo stream is transmitted to a client (e.g., any of devices 8 a . . .8 n). When the client receives each timestamp in the meta-data, theclient invokes a measurement reporting process. A measurement intervalassociated with insertion points for (i.e., in the video stream) for themeta-data time stamps will determine how fine-grained a final analysismay be. Software application 18 may report partial video segments if auser interrupts the video between measurement intervals. A measurementreporting method is invoked with additional parameters to differentiatefrom live, on-demand, or reviewed video. User interaction informationsuch as, inter alia, window focus, mouse movement, mouse clicks withinthe player, etc. may also be recorded via system 5 for analyticpurposes. The user interaction information may be used to validate orinvalidate video stream measurement statistics. The user interactioninformation may be used to determine if a user is actively watching avideo stream or if the user has the video stream playing on their systemwithout paying attention to it. Examples of user interaction informationretrieved by software application 18 are described as follows:

Window Focus Information

Software application 18 may detect if a video player (e.g., a softwarevideo media player on one of devices 8 a . . . 8 n) is in focus throughmethod calls to an operating system. When a video window (i.e., of asoftware video media player) focus changes, the change is recorded bysoftware application 18. Window focus may indicate if a user is activelyviewing streaming video media.

Mouse Movement Information

Software application 18 may detect mouse movement within a video window(i.e., of a software video media player). Additionally, softwareapplication 18 may detect mouse movement external to the video windowusing method calls to an operating system. Mouse movement indicates thata user is actively interacting with the computer and therefore likelywatching the video streaming. Retrieving mouse movement information incombination with the window focus information allows softwareapplication 18 to an accurate depiction of a user's attentiveness to avideo.

Volume Information

Software application 18 may detect a current volume of a software videomedia player and/or system. During a video stream measurementtransmission, a state of the volume may be transmitted. Volume or lackof volume indicates if a user has heard any audio associated with thevideo stream during a specified time period. This measurement may behelpful to potential advertisers.

Software application 18 enables a process for analyzing an embedded timecode compared to a relative reported system time in order to determinean increased buffer time or lag time for each end user. If softwareapplication 18 discerns that a quality of the video stream is below athreshold, software application 18 may alter the video stream or directthe user to a new video stream that consumes less bandwidth to enhancethe video quality.

Devices 8 a . . . 8 n may report measurements using any methodincluding, inter alia, HTTP over TCP/IP, etc. Devices 8 a . . . 8 n mayenable an HTTP request to a measurement server (e.g., softwareapplication 18) and an associated measurement is recorded by the serverand used for analytics. Any subset of the measurements or additionalinformation may be transmitted with the measurement requests. Softwareapplication 18 enables generation of measurement reports comprising howmany people viewed a live video stream at any given time, metricsassociated with portions of an on-demand video section, and adetermination of which advertisements were viewed (if advertisementswere embedded in a primary video stream). If advertisements weredisplayed as separate sections, they could be likewise measured asseparate sections. Software application 18 analyzes measurements todetermine:

-   1. How much of a video stream a user has watched.-   2. Which segments (and an order of the video segments) of a video    stream have been viewed-   3. Which segments of a video stream have been skipped.-   4. Which segments of a video stream have been viewed more than once    in a viewing session.

The following implementation example illustrates a process for measuringand analyzing a video stream broadcasted for a user. Initially, a videostream is embedded with timestamps every ten seconds. Note that the tensecond interval may be modified up or down to increase or decrease agranularity of measurement calls. The video stream embedded withtimestamps is transmitted from streaming server computing system (e.g.,computing system 10) to a client application (i.e., a web video consoleof devices 8 a . . . 8 n). The client application displays the videostream for a user. As the client application displays the video streamit will also receive meta-data which has been inserted into the videostream (i.e., comprising embedded time stamps). When the clientapplication receives a timestamp, it transmits a measurement call. Thisprocess begins by collecting a current time. The client applicationadditionally collects data which may enhance measurement of the videostream. In this example the following data is collected:

-   1. An average volume since a last measurement call.-   2. A Boolean value indicating if there was any mouse movement or    clicks within the client application since a last measurement call.-   3. A percentage value indicating how long the client application    comprised a focused window since a last measurement call-   4. A count of buffering events.

Additionally, a measurement service will generate a unique ID number foreach client session.

The aforementioned retrieved measurement data is formatted into a textblock and the text block is transmitted to the measurement serverthrough an HTTP call from the client application. The measurement serveraccesses the measurement data and generates real-time reports. If ameasurement value exceeds a specified threshold, a manual or automaticprocess may add instructions to the video stream as additionalmeta-data. In this example the measurement process reviews a variety ofdata points from the measurement calls. User activity, videoperformance, DVR activity, segments viewed, concurrent streams, maxclients, are max streams are all reviewed. User activity is used todetermine if a user is actually watching a video stream. Since eachvideo stream served comprises an incremental cost, the video streamproducers want to limit unwatched streams. During processing, themeasurement server determines that a client with an id of 1234 has nothad any activity in the past 30 minutes. A message is transmitted to anencoding process which embeds the id of 1234 and a message code of 1into the video stream as meta-data. All client applications receive themessage, but only client 1234 processes this message since it has amatching client id. The message code of 1, instructs the client videoplayer to display a message to the user asking them to click a button ifthey are still watching. If the button is not clicked, the video clientautomatically disables the video stream after a specified time period.Additionally, the aforementioned method may be used for a live videoperformance. Based on a video lag (i.e., calculated as the differencebetween a video timestamp and a real time timestamp) and bufferingevents, a code may be transmitted to the client application. The codeinstructs the client application to switch to an alternative videostream. The alternative video stream may comprise a lower bit ratestream or may comprise a video stream from a different server which maybe geographically closer (i.e., for improved network performance). Theadditional data, segments viewed, concurrent streams, max clients, andmax streams are all reviewed by video producers to make businessdecisions about the video streams. Concurrent streams and max values arecalculated using unique client ids and a series of measurement callsfrom each client application. Video segments viewed are calculated bylooking at reported video timestamps. Each timestamp represents asegment of video 10 seconds long which ends at a timestamp time. As thetimestamps are reported in measurement calls, a profile is generatedillustrating which parts of the video are being displayed at any giventime. In this example, the client application and video server comprisedigital video recorder (DVR) capabilities, which allow users to rewindor pause a video and does not guarantee all users are watching a liveversion of the video stream. The details of these viewership patternsare available because of the timestamp based measurement techniquedescribed, supra.

FIG. 2 illustrates a flowchart describing an algorithm used by system 5of FIG. 1 for implementing a method for measuring and analyzing a videostream broadcasted for a user, in accordance with embodiments of thepresent invention. In step 201, a computing system (e.g., devices 8 a .. . 8 n of FIG. 1) receives a video stream comprising plurality oftimestamps located at specified intervals of the video stream. In step204, the computing system broadcasts the video stream for a user. Instep 208, (i.e., as the video stream is broadcasted for the user) thecomputing system decodes time stamps (i.e., from the video stream) atdifferent time periods. In step 210, the computing system monitors userinteraction functions (e.g., comprising measurements) performed by theuser and associated with the video stream. The measurements may include,inter alia:

-   1. A window focus percentage measurement occurring during the    broadcast of a portion of the video stream.-   2. A mouse movement measurement occurring during the broadcast of a    portion of the video stream.-   3. An increased buffer time/lag associated with the broadcast the    video stream.-   4. An average volume level for an audio stream associated with the    video stream occurring during the broadcast of said video stream.

The measurements may be compiled into usage statistics and viewingpatterns associated with the video stream. The measurements occur atdifferent time periods with reference to the time stamps. In step 218,the different time periods (i.e., associated with the time stamps ofstep 208 or reference time periods) are optionally compared to eachother to determine differences. For example, different time periodsassociated with different time stamps (i.e., associated with themeasurements) may be compared to each other to determine differences.Alternatively, different time periods associated with different timestamps (i.e., associated with the measurements) may be compared topredetermined reference time periods to determine differences.Additionally, different time periods associated with different timestamps (i.e., associated with the measurements) may be compared to eachother and predetermined reference time periods to determine differences.In step 220, the computing system generates a report comprising adescriptions associated with the first user interaction functions, thetime periods of step 208, and the differences of step 218. In step 224,the computing system transmits the report to an analysis computingsystem (e.g., computing system 10 of FIG. 1). In step 228, the computingsystem receives (i.e., from the analysis computing system) an analysisreport (generated by the analysis computing system) generated frominformation on the report of step 220. In step 232, the computing systemreceives (i.e., from the analysis computing system) instructions (andoptionally load data indicating a current capacity and load associatedwith the computing system) associated with the analysis and the videostream. The instructions may be received as meta data inserted in thevideo stream. The instructions comprise commands for performingspecified functions associated with the video stream. For example, theinstructions may command the user of the computing system to, interalia, disable the video stream and enable a replacement video stream,adjust a focus of the video stream, adjust a volume of an audio signalassociated with the video stream, etc. In step 234, the computing system(optionally) automatically enables the commands associated with theinstructions.

FIG. 3 illustrates a computer apparatus 90 (e.g., computing system 10 ordevices 8 a . . . 8 n of FIG. 1) used for implementing a method formeasuring and analyzing a video stream broadcasted for a user, inaccordance with embodiments of the present invention. The computersystem 90 comprises a processor 91, an input device 92 coupled to theprocessor 91, an output device 93 coupled to the processor 91, andmemory devices 94 and 95 each coupled to the processor 91. The inputdevice 92 may be, inter alia, a keyboard, a software application, amouse, etc. The output device 93 may be, inter alia, a printer, aplotter, a computer screen, a magnetic tape, a removable hard disk, afloppy disk, a software application, etc. The memory devices 94 and 95may be, inter alia, a hard disk, a floppy disk, a magnetic tape, anoptical storage such as a compact disc (CD) or a digital video disc(DVD), a dynamic random access memory (DRAM), a read-only memory (ROM),etc. The memory device 95 includes a computer code 97. The computer code97 includes algorithms (e.g., the algorithm of FIG. 2) for implementinga method for measuring and analyzing a video stream broadcasted for auser. The processor 91 enables the computer code 97. The memory device94 includes input data 96. The input data 96 includes input required bythe computer code 97. The output device 93 displays output from thecomputer code 97. Either or both memory devices 94 and 95 (or one ormore additional memory devices not shown in FIG. 3) may comprise thealgorithms of FIG. 2 and may be used as a computer usable medium (or acomputer readable medium or a program storage device) having a computerreadable program code embodied therein and/or having other data storedtherein, wherein the computer readable program code comprises thecomputer code 97. Generally, a computer program product (or,alternatively, an article of manufacture) of the computer system 90 maycomprise said computer usable medium (or said program storage device).

Still yet, any of the components of the present invention could becreated, integrated, hosted, maintained, deployed, managed, serviced,etc. by a service provider who offers to implement a method formeasuring and analyzing a video stream broadcasted for a user. Thus thepresent invention discloses a process for deploying, creating,integrating, hosting, maintaining, and/or integrating computinginfrastructure, comprising integrating computer-readable code into thecomputer system 90, wherein the code in combination with the computersystem 90 is capable of performing a method for implementing a methodfor measuring and analyzing a video stream broadcasted for a user. Inanother embodiment, the invention provides a method that performs theprocess steps of the invention on a subscription, advertising, and/orfee basis. That is, a service provider, such as a Solution Integrator,could offer to implement a method for measuring and analyzing a videostream broadcasted for a user. In this case, the service provider cancreate, maintain, support, etc. a computer infrastructure that performsthe process steps of the invention for one or more customers. In return,the service provider can receive payment from the customer(s) under asubscription and/or fee agreement and/or the service provider canreceive payment from the sale of advertising content to one or morethird parties.

While FIG. 3 shows the computer system 90 as a particular configurationof hardware and software, any configuration of hardware and software, aswould be known to a person of ordinary skill in the art, may be utilizedfor the purposes stated supra in conjunction with the particularcomputer system 90 of FIG. 3. For example, the memory devices 94 and 95may be portions of a single memory device rather than separate memorydevices.

While embodiments of the present invention have been described hereinfor purposes of illustration, many modifications and changes will becomeapparent to those skilled in the art. Accordingly, the appended claimsare intended to encompass all such modifications and changes as fallwithin the true spirit and scope of this invention.

The invention claimed is:
 1. A method comprising: broadcasting, by acomputer processor of a computing system for a user, a video streamcomprising plurality of timestamps located at specified intervals ofsaid video stream; during said broadcasting, first decoding by saidcomputer processor, a first time stamp of said plurality of time stamps,said first time stamp broadcasted during a first time period; duringsaid first decoding, monitoring by said computer processor, a first userinteraction function associated with said video stream, said first userinteraction function performed by said user during a broadcast of afirst portion of said video stream, said broadcast of said first portionof said video stream occurring at said first time stamp; firstdetermining, by said computer processor, based on said first userinteraction function and additional previous user interaction functions,various portions of said video stream that have been actively viewed bysaid user; second determining, by said computer processor, based onresults of said first determining, video portions of additional videofor adding to said video stream; generating, by said computing system, areport, said report comprising a first description comprising analysisassociated with said first user interaction function, said additionalprevious user interaction functions, and said first time periodassociated with said first time stamp, wherein said first descriptioncomprises first measurements associated with said first user interactionfunction, wherein said first measurements are configured to be compiledinto usage statistics and viewing patterns associated with said videostream, and wherein said first measurements comprise: measuring a windowfocus percentage, through method calls to an operating system, occurringduring said broadcast of said first portion of said video stream;measuring a mouse movement occurring during said broadcast of said firstportion of said video stream, wherein said mouse movement occurs withinand external to a video window broadcasting said first portion of saidvideo stream; and measuring an average volume level for an audio streamassociated with said video stream occurring during said broadcast ofsaid first portion of said video stream; transmitting, by said computerprocessor to an analysis computing system, said report; and receiving,by said computer processor from said analysis computing system, ananalysis associated with said report.
 2. The method of claim 1, furthercomprising: receiving, by said computer processor from said analysiscomputing system, instructions associated with said analysis and saidvideo stream; and presenting, by said computer processor to said user,said instructions.
 3. The method of claim 1, further comprising:receiving, by said computer processor from said analysis computingsystem, instructions associated with said analysis and said videostream; and automatically enabling, by said computer processor inresponse to said instructions, specified functions associated with saidbroadcasting said video stream.
 4. The method of claim 1, furthercomprising: comparing, by said computer processor, said first timeperiod to a reference time period to determine a difference between saidfirst time period and said reference time period, wherein said reportcomprises said difference.
 5. The method of claim 1, further comprising:during said broadcasting and after said first decoding, second decodingby said computer processor, a second time stamp of said plurality oftime stamps, said first time stamp broadcasted during a first timeperiod; during said second decoding, monitoring by said computerprocessor, a second user interaction function associated with said videostream, said second user interaction function performed by said userduring a broadcast of a second portion of said video stream, saidbroadcast of said second portion of said video stream occurring at saidsecond stamp, said broadcast of said second portion of said video streamoccurring after said broadcast of said first portion of said videostream; and comparing, by said computer processor, said first timeperiod to said second time period to determine a difference between saidfirst time period and said second time period, wherein said reportcomprises said difference.
 6. The method of claim 5, further comprising:comparing, by said computer processor, said difference to a referencetime period to determine an additional difference between said firsttime period and said reference time period, wherein said reportcomprises said additional difference; receiving, by said computerprocessor from said analysis computing system in response to saidreport, an indication that said broadcasting said video stream comprisesa specified lag time; receiving, by said computer processor from saidanalysis computing system, instructions associated with said analysisand said indication; and presenting, by said computer processor to saiduser, said instructions.
 7. The method of claim 6, wherein saidinstructions are received via metadata inserted with said video stream.8. The method of claim 6, wherein said instructions comprise informationrequesting said user disable said broadcasting said video stream andswitch to broadcasting a replacement video stream.
 9. The method ofclaim 7, further comprising: comparing, by said computer processor, saiddifference to a reference time period to determine an additionaldifference between said first time period and said reference timeperiod, wherein said report comprises said additional difference;receiving, by said computer processor from said analysis computingsystem in response to said report, an indication that said broadcastingsaid video stream comprises a specified lag time; receiving, by saidcomputer processor from said analysis computing system, instructionsassociated with said analysis and said indication; and automaticallyenabling, by said computer processor in response to said instructions,specified functions associated with said broadcasting said video stream.10. The method of claim 9, wherein said automatically enabling saidspecified functions comprises: automatically disabling, by said computerprocessor, said broadcasting said video stream; and automaticallyenabling, by said computer processor, broadcasting a replacement videostream.
 11. The method of claim 7, further comprising: comparing, bysaid computer processor, said difference to a reference time period todetermine an additional difference between said first time period andsaid reference time period, wherein said report comprises saidadditional difference; and transmitting, by said computer processor tosaid analysis computing system, load data indicating a current load andcapacity associated with said computing system.
 12. The method of claim11, further comprising: receiving, by said computer processor based onsaid load data, an additional plurality of timestamps located atadditional specified intervals of said video stream.
 13. The method ofclaim 11, further comprising: receiving, by said computer processorbased on said load data, said video stream comprising removed timestamps from plurality of timestamps.
 14. The method of claim 1, whereinsaid plurality of timestamps are comprised by metadata.
 15. A processfor supporting computer infrastructure, said process comprisingproviding at least one support service for at least one of creating,integrating, hosting, maintaining, and deploying computer-readable codeby said computer processor, wherein the code in combination with saidcomputing system is capable of performing the method of claim
 1. 16. Acomputer program product, comprising a computer hardware storage devicestoring a computer readable program code, said computer readable programcode configured to perform a method upon being executed by a processorof a computing system, said method comprising: broadcasting, by saidcomputer processor for a user, a video stream comprising plurality oftimestamps located at specified intervals of said video stream; duringsaid broadcasting, first decoding by said computer processor, a firsttime stamp of said plurality of time stamps, said first time stampbroadcasted during a first time period; during said first decoding,monitoring by said computer processor, a first user interaction functionassociated with said video stream, said first user interaction functionperformed by said user during a broadcast of a first portion of saidvideo stream, said broadcast of said first portion of said video streamoccurring at said first time stamp; first determining, by said computerprocessor, based on said first user interaction function and additionalprevious user interaction functions, various portions of said videostream that have been actively viewed by said user; second determining,by said computer processor, based on results of said first determining,video portions of additional video for adding to said video stream;generating, by said computing system, a report, said report comprising afirst description comprising analysis associated with said first userinteraction function, said additional previous user interactionfunctions, and said first time period associated with said first timestamp, wherein said first description comprises first measurementsassociated with said first user interaction function, wherein said firstmeasurements are configured to be compiled into usage statistics andviewing patterns associated with said video stream, and wherein saidfirst measurements comprise: measuring a window focus percentage,through method calls to an operating system, occurring during saidbroadcast of said first portion of said video stream; measuring a mousemovement occurring during said broadcast of said first portion of saidvideo stream, wherein said mouse movement occurs within and external toa video window broadcasting said first portion of said video stream; andmeasuring an average volume level for an audio stream associated withsaid video stream occurring during said broadcast of said first portionof said video stream; and transmitting, by said computer processor to ananalysis computing system, said report; and receiving, by said computerprocessor from said analysis computing system, an analysis associatedwith said report.
 17. The computer program product of claim 16, whereinsaid method further comprises: receiving, by said computer processorfrom said analysis computing system, instructions associated with saidanalysis and said video stream; and presenting, by said computerprocessor to said user, said instructions.
 18. The computer programproduct of claim 16, wherein said method further comprises: receiving,by said computer processor from said analysis computing system,instructions associated with said analysis and said video stream; andautomatically enabling, by said computer processor in response to saidinstructions, specified functions associated with said broadcasting saidvideo stream.
 19. The computer program product of claim 16, wherein saidmethod further comprises: comparing, by said computer processor, saidfirst time period to a reference time period to determine a differencebetween said first time period and said reference time period, whereinsaid report comprises said difference.
 20. A computing system comprisinga computer processor coupled to a computer-readable memory unit, saidmemory unit comprising a computer readable code configured to beexecuted by the computer processor to perform a method comprising:broadcasting, by said computer processor for a user, a video streamcomprising plurality of timestamps located at specified intervals ofsaid video stream; during said broadcasting, first decoding by saidcomputer processor, a first time stamp of said plurality of time stamps,said first time stamp broadcasted during a first time period; duringsaid first decoding, monitoring by said computer processor, a first userinteraction function associated with said video stream, said first userinteraction function performed by said user during a broadcast of afirst portion of said video stream, said broadcast of said first portionof said video stream occurring at said first time stamp; firstdetermining, by said computer processor, based on said first userinteraction function and additional previous user interaction functions,various portions of said video stream that have been actively viewed bysaid user; second determining, by said computer processor, based onresults of said first determining, video portions of additional videofor adding to said video stream; generating, by said computing system, areport, said report comprising a first description comprising analysisassociated with said first user interaction function, said additionalprevious user interaction functions, and said first time periodassociated with said first time stamp, wherein said first descriptioncomprises first measurements associated with said first user interactionfunction, wherein said first measurements are configured to be compiledinto usage statistics and viewing patterns associated with said videostream, and wherein said first measurements comprise: measuring a windowfocus percentage, through method calls to an operating system, occurringduring said broadcast of said first portion of said video stream;measuring a mouse movement occurring during said broadcast of said firstportion of said video stream, wherein said mouse movement occurs withinand external to a video window broadcasting said first portion of saidvideo stream; and measuring an average volume level for an audio streamassociated with said video stream occurring during said broadcast ofsaid first portion of said video stream; and transmitting, by saidcomputer processor to an analysis computing system, said report; andreceiving, by said computer processor from said analysis computingsystem, an analysis associated with said report.